import sys

from loguru import logger

# 日志配置
log_path = "log.txt"
log_std_level = "DEBUG"  # 日志等级请用：TRACE, DEBUG, INFO, WARNING, ERROR, CRITICAL
log_file_level = "INFO"
log_file_retention_days = "7 days"  # 日志保留天数
log_file_rotation = "100 MB"  # 日志文件大小


my_log_file_path = log_path


class MyLogger:
    def __init__(self, log_file_path=my_log_file_path):
        self.logger = logger
        # 清空所有设置
        self.logger.remove()
        # 添加控制台输出的格式,sys.stdout为输出到屏幕;关于这些配置还需要自定义请移步官网查看相关参数说明
        self.logger.add(
            sys.stdout,
            level=log_std_level,
            format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "  # 颜色>时间
            "{process.name} | "  # 进程名
            "{thread.name} | "  # 进程名
            "<cyan>{module}</cyan>.<cyan>{function}</cyan>"  # 模块名.方法名
            ":<cyan>{line}</cyan> | "  # 行号
            "<level>{level}</level>: "  # 等级
            "<level>{message}</level>",  # 日志内容
        )
        # 输出到文件的格式,注释下面的add',则关闭日志写入
        self.logger.add(
            log_file_path,
            level=log_file_level,
            format="{time:YYYY-MM-DD HH:mm:ss} - "  # 时间
            "{process.name} | "  # 进程名
            "{thread.name} | "  # 进程名
            "{module}.{function}:{line} - {level} -{message}",  # 模块名.方法名:行号
            encoding="utf-8",
            retention=log_file_retention_days,
            rotation=log_file_rotation,
        )

    def get_logger(self):
        return self.logger


my_logger = MyLogger().get_logger()


def ss():
    my_logger.info(2222222)
    my_logger.debug(2222222)
    my_logger.warning(2222222)
    my_logger.error(2222222)
    my_logger.exception(2222222)


if __name__ == "__main__":
    ss()
